As an increasing number of applications and services are being made available over networks such as the Internet, an increasing number of content, application, and/or service providers are turning to technologies such as cloud computing. Cloud computing, in general, is an approach to providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is dynamically scalable to meet the needs of the services at any given time. A user or customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software needed.
In these environments, it is often desirable to scale the resources allocated to a user or customer as demand for those resources increases or decreases through time. However, because the customer normally does not have physical access to the resources in the data center of the service provider, conventionally, users have not been provided with a desired level of control over how those resources are to be scaled.